Phone no: (021) 7989671 or email us: info@zahra-itsolution.com
Posted on 16 August 2024
Setelah kita berhasil membuat fitur login di Laravel seperti yang telah dibahas sebelumnyaâ(login), sekarang kita akan melanjutkan dengan fitur register. Pada tutorial ini, kita akan membuat fitur register yang dapat diakses langsung dari halaman login, dengan tombol Register di samping tombol Login.
Sebelum memulai, pastikan Anda sudah menginstal Laravel dan melakukan konfigurasi database seperti di tutorial login. Jika belum, silakan ikuti langkah berikut:
composer create-project --prefer-dist laravel/laravel project-name
users
dengan migrasi: php artisan migrate
Untuk menangani registrasi, kita perlu membuat controller yang khusus menangani proses registrasi pengguna.
Buat controller dengan perintah berikut:
php artisan make:controller Auth/RegisterController
Kemudian, buka file app/Http/Controllers/Auth/RegisterController.php
dan tambahkan kode berikut:
namespace App\Http\Controllers\Auth; use App\Http\Controllers\Controller; use App\Models\User; use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Validator; class RegisterController extends Controller { public function create() { return view('auth.register'); } public function store(Request $request) { $this->validator($request->all())->validate(); $user = $this->createUser($request->all()); // Redirect ke halaman login setelah registrasi return redirect()->route('login')->with('success', 'Registrasi berhasil, silakan login.'); } protected function validator(array $data) { return Validator::make($data, [ 'name' => ['required', 'string', 'max:255'], 'email' => ['required', 'string', 'email', 'max:255', 'unique:users'], 'password' => ['required', 'string', 'min:8', 'confirmed'], ]); } protected function createUser(array $data) { return User::create([ 'name' => $data['name'], 'email' => $data['email'], 'password' => Hash::make($data['password']), ]); } }
Selanjutnya, buat tampilan untuk halaman register. Tambahkan file
resources/views/auth/register.blade.php
:
@extends('layouts.app') @section('content') <div class="container"> <div class="row justify-content-center"> <div class="col-md-8"> <div class="card"> <div class="card-header">{{ __('Register') }}</div> <div class="card-body"> <form method="POST" action="{{ route('register') }}"> @csrf <div class="form-group row"> <label for="name" class="col-md-4 col-form-label text-md-right">{{ __('Name') }}</label> <div class="col-md-6"> <input id="name" type="text" class="form-control @error('name') is-invalid @enderror" name="name" value="{{ old('name') }}" required autocomplete="name" autofocus> @error('name') <span class="invalid-feedback" role="alert"> <strong>{{ $message }}</strong> </span> @enderror </div> </div> <div class="form-group row"> <label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label> <div class="col-md-6"> <input id="email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ old('email') }}" required autocomplete="email"> @error('email') <span class="invalid-feedback" role="alert"> <strong>{{ $message }}</strong> </span> @enderror </div> </div> <div class="form-group row"> <label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label> <div class="col-md-6"> <input id="password" type="password" class="form-control @error('password') is-invalid @enderror" name="password" required autocomplete="new-password"> @error('password') <span class="invalid-feedback" role="alert"> <strong>{{ $message }}</strong> </span> @enderror </div> </div> <div class="form-group row"> <label for="password-confirm" class="col-md-4 col-form-label text-md-right">{{ __('Confirm Password') }}</label> <div class="col-md-6"> <input id="password-confirm" type="password" class="form-control" name="password_confirmation" required autocomplete="new-password"> </div> </div> <div class="form-group row mb-0"> <div class="col-md-8 offset-md-4"> <button type="submit" class="btn btn-primary"> {{ __('Register') }} </button> </div> </div> </form> </div> </div> </div> </div> </div> @endsection
use App\Http\Controllers\Auth\RegisterController; Route::get('/register', [RegisterController::class, 'create'])->name('register'); Route::post('/register', [RegisterController::class, 'store']);
Terakhir, modifikasi halaman login (resources/views/auth/login.blade.php
) untuk menambahkan tombol register di samping tombol login:
<div class="form-group row mb-0"> <div class="col-md-8 offset-md-4"> <button type="submit" class="btn btn-primary"> {{ __('Login') }} </button> <a href="{{ route('register') }}" class="btn btn-secondary"> {{ __('Register') }} </a> </div> </div>
Setelah langkah-langkah di atas selesai, jalankan server dengan php artisan serve
dan akses halaman http://localhost:8000/register
untuk melihat hasilnya.
Dengan mengikuti tutorial ini, Anda telah berhasil menambahkan fitur register beserta tombol register di samping tombol login pada aplikasi Laravel Anda. Anda telah belajar membuat controller khusus untuk proses registrasi, membuat view untuk form register, menambahkan rute yang relevan, dan memodifikasi tampilan login agar lebih interaktif dengan tombol register.
Langkah ini penting untuk memberikan pengalaman pengguna yang lebih baik dan memastikan bahwa pengguna dapat dengan mudah mendaftar dan mengakses aplikasi Anda.
Membangun aplikasi Laravel yang fungsional dan lengkap membutuhkan ketelitian dan dedikasi. Jangan pernah ragu untuk terus belajar dan berinovasi dalam setiap fitur yang Anda tambahkan. Tantangan yang Anda hadapi saat membangun aplikasi adalah bagian dari proses pembelajaran yang akan memperkaya kemampuan Anda sebagai seorang developer.
Ingat, setiap kesulitan adalah kesempatan untuk menjadi lebih baik. Teruslah berkembang, dan jangan pernah berhenti mencoba!